// Package gxm 提供Excel文件的读写操作功能
//
// 该包封装了excelize库，提供了更简洁的API接口，支持Excel文件的读取和写入操作。
// 主要功能包括：
//   - Excel文件读取：支持读取单元格、行、列数据
//   - Excel文件写入：支持按行、按列写入数据
//   - 错误处理：统一的错误处理机制
//   - 链式操作：支持方法链式调用
//
// 使用示例：
//
//	// 创建写入器并写入数据
//	writer := gxm.NewWrite("test.xlsx")
//	writer.Write(0, []interface{}{"姓名", "张三", "李四"})
//	writer.WriteRow(1, []interface{}{"年龄", 25, 30})
//
//	// 创建读取器并读取数据
//	reader := gxm.NewRead("test.xlsx")
//	data := reader.ReadAll()
package gxm

// NewRead 创建Excel文件读取器
//
// 参数：
//   filename - 要读取的Excel文件路径
//
// 返回值：
//   ApiRead - 配置好的读取器实例，默认使用"Sheet1"工作表
//
// 说明：
//   - 默认设置SheetName为"Sheet1"
//   - 如果文件不存在，后续读取操作会返回错误
//   - 返回的读取器实例可以链式调用其他方法
//
// 示例：
//   reader := gxm.NewRead("data.xlsx")
//   data := reader.ReadAll()
func NewRead(filename string) ApiRead {
	r := ApiRead{FileName: filename}
	r.SheetName = "Sheet1"
	return r
}

// NewWrite 创建Excel文件写入器
//
// 参数：
//   filename - 要写入的Excel文件路径
//
// 返回值：
//   ApiWrite - 配置好的写入器实例，默认使用"Sheet1"工作表
//
// 说明：
//   - 默认设置SheetName为"Sheet1"
//   - 如果文件不存在会自动创建新文件
//   - 支持链式操作，可以连续调用多个写入方法
//
// 示例：
//   writer := gxm.NewWrite("output.xlsx")
//   writer.Write(0, []interface{}{"姓名", "张三"})
//   writer.WriteRow(1, []interface{}{"年龄", 25})
func NewWrite(filename string) ApiWrite {
	r := ApiWrite{FileName: filename}
	r.SheetName = "Sheet1"
	return r
}

func Version() string {
	return "1.0.0"
}
